<Runtime.CompilerServices.Extension()> _
 Public Function After(ByVal ThisDate As DateTime, _
                       ByVal AfterDate As DateTime, _
                       Optional ByVal Inclusive As Boolean = True) As Boolean
  Dim Cmp = DateTime.Compare(ThisDate, AfterDate)
  Return If(Inclusive, Cmp >= 0, Cmp > 0)
 End Function
 <Runtime.CompilerServices.Extension()> _
 Public Function Before(ByVal ThisDate As DateTime, _
                      ByVal BeforeDate As DateTime, _
                      Optional ByVal Inclusive As Boolean = True) As Boolean
  Dim Cmp = DateTime.Compare(ThisDate, BeforeDate)
  Return If(Inclusive, Cmp <= 0, Cmp < 0)
 End Function
 <Runtime.CompilerServices.Extension()> _
 Public Function Between(ByVal ThisDate As DateTime, _
                        ByVal AfterThisDate As DateTime, _
                        ByVal BeforeThisDate As DateTime, _
                       Optional ByVal Inclusive As Boolean = True) As Boolean
  Return ThisDate.After(AfterThisDate, Inclusive) AndAlso ThisDate.Before(BeforeThisDate, Inclusive)
 End Function
 <Runtime.CompilerServices.Extension()> _
 Public Function IsA(ByVal ThisDate As DateTime, ByVal ThisDayOfTheWeek As System.DayOfWeek) As Boolean
  Return ThisDate.DayOfWeek = ThisDayOfTheWeek
 End Function